package com.example.core.service;

import com.example.core.entity.*;
import com.example.core.utils.RegionEnum;
import com.example.core.utils.SearchEnum;
import com.example.core.utils.TargetEnum;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface ProcessingService {

    //获取基础数据
    Map<String, List<DealerForm>> getBaseForm(String yearId, String quarterId);

    //获取基础指标
    BigDecimal getBaseIndex(String yearId, String quarterId, RegionEnum regionEnum, String dealer,
                            Map<String, List<DealerForm>> baseMap, SearchEnum searchEnum, TargetEnum targetEnum);

    //获取新车汇总指标
    NewCarIndex getCarCollectIndex(String yearId, String quarterId, DealerForm dealerForm, Map<String, List<DealerForm>> baseMap,
                                   RegionEnum regionEnum, SearchEnum searchEnum);

    //获取二手车汇总指标
    UsedIndex getUsedCollectIndex(String yearId, String quarterId, DealerForm dealerForm, Map<String, List<DealerForm>> baseMap,
                                  RegionEnum regionEnum, SearchEnum searchEnum);

    //获取整体汇总指标
    GlobalIndex getGlobalCollectIndex(String yearId, String quarterId, DealerForm dealerForm, Map<String, List<DealerForm>> baseMap,
                                      RegionEnum regionEnum, SearchEnum searchEnum);

    //获取售后汇总指标
    AfterSaleIndex getAfterSaleCollectIndex(String yearId, String quarterId, DealerForm dealerForm, Map<String, List<DealerForm>> baseMap,
                                            RegionEnum regionEnum, SearchEnum searchEnum);


    //验证是否有推送数据
    Integer checkSyncData(String yearId, String quarterId);

    //计算错误日志记录
    void insertJxsWrExceLog(String classType, String message,String yearId, String quarterId);
}
